#include "config.h"

#include "sr.h"
#include "mkentity.h"

const char *
get_decl_ETT_name(sr_t *sr_decl)
{
	return sr_get_name(sr_decl);
}

ECMBOOL
is_HMS_sr_ETT(const sr_t *sr_ETT)
{
	return sr_getc_bool(sr_ETT, "HMS");
}

ECMBOOL
is_ref_sr_ETT(const sr_t *sr_ETT)
{
	return sr_getc_bool(sr_ETT, "ref");
}

ECMBOOL
is_same_ETT(const sr_t *sr_ETT1, const sr_t *sr_ETT2)
{
	if (ecm_strcmp(sr_getc_str(sr_ETT1, "name"),
		       sr_getc_str(sr_ETT2, "name")) == 0 &&
	    is_HMS_sr_ETT(sr_ETT1) == is_HMS_sr_ETT(sr_ETT2) &&
	    is_ref_sr_ETT(sr_ETT1) == is_ref_sr_ETT(sr_ETT2))
		return ECM_TRUE;
	return ECM_FALSE;
}

char *
sr_ETT_to_str(const sr_t *sr_ETT)
{
	char	*ettstr;

	ecm_asprintf(&ettstr, "<%s%s%s>",
		     is_ref_sr_ETT(sr_ETT) ? "&": "",
		     sr_getc_str(sr_ETT, "name"),
		     is_HMS_sr_ETT(sr_ETT) ? "*": "");
	return ettstr;
}
